Merge tag '10.20250721'
authorSean Whitton <spwhitton@spwhitton.name>
Tue, 19 Aug 2025 11:15:27 +0000 (12:15 +0100)
committerSean Whitton <spwhitton@spwhitton.name>
Tue, 19 Aug 2025 11:15:27 +0000 (12:15 +0100)
tagging package git-annex version 10.20250721

# -----BEGIN PGP SIGNATURE-----
#
# iQIzBAABCgAdFiEEKKUAw1IH6rcvbA8l2xLbD/BfjzgFAmh/1GMACgkQ2xLbD/Bf
# jzjeyg//c9bd9YJ/3aqn20kVAg6TQybTc/Vh/8BQn/3h8y1q2Ib123Jj4Vl7PhFX
# f2a7yAPTDM/xf67M2a/aD7p8O1T4ebLCmSV3YrVPTMsGZddN3c6agyZfYDspeNsQ
# huWqfSz0BLAt1i++olq6CKjPMy069Vsle+UUleZ2bVh32/Rr7+YKl47jm9VU6/3O
# YGYzaIpatDqasOx9CBpvNNS4XJOdfBc2LdqBizfNlv+V4TJBsgST54c4hJczoFWy
# afQouH/g4pAsQa/S4BAOk/aM6taxVKoBTUdoAX791KMr26M/rbaPpFK7bbGr1Iy7
# cqYeiLkq0xL2QWKI+D5rTYHBjA0sWmJ9sQSVDkh/DJsSn2ZPCwPhBwbOSa2URr8V
# /yTKE7+uYy1BWisqZBnZrfzBEZkS5MiLwsXTEU7S+feQpyc3Z96A/AK1GJDViFTr
# 20+3ldhapuHZsQZCWDAZzqK8UljqkgeqVge/6eNy36suPfWT+71TzaHMx5FYd5IG
# 0m/IiYe2XNf5T8hnNeTvt4aZNdNRvbzXXxN4r8swGjZsC+3gE+3QnjquXQY+kbNK
# 5el0/vgWk4VHWfeT0Q1+4jj/6u54B12qx51zHdIh1ZcUc1ec60BwzAH7FdtKrEbV
# jq4P7KMFC0ee1wPa7DmGy7Sv4kiEPw5pljug0vKov7o/OydV91I=
# =hn1r
# -----END PGP SIGNATURE-----
# gpg: Signature made Tue 22 Jul 2025 19:11:47 BST
# gpg:                using RSA key 28A500C35207EAB72F6C0F25DB12DB0FF05F8F38
# gpg: Good signature from "Joey Hess <joeyh@joeyh.name>" [full]
# Primary key fingerprint: E85A 5F63 B31D 24C1 EBF0  D81C C910 D922 2512 E3C7
#      Subkey fingerprint: 28A5 00C3 5207 EAB7 2F6C  0F25 DB12 DB0F F05F 8F38

1  2 
Database/Keys.hs

index 22962e13723837da312339d2615250cd1848efda,d3fce7bbd89208b15190b597fd276524311389e8..a374aa49d25584469faaa00924d7f28e7259faa7
@@@ -327,22 -327,23 +327,31 @@@ reconcileStaged dbisnew qh = ifM notnee
                processor l False
                        `finally` void cleanup
        
-       -- Avoid running smudge clean filter, which would block trying to
-       -- access the locked database. git write-tree sometimes calls it,
-       -- even though it is not adding work tree files to the index,
-       -- and so the filter cannot have an effect on the contents of the
-       -- index or on the tree that gets written from it.
-       getindextree = inRepo $ \r -> writeTreeQuiet $ r
-               { gitGlobalOpts = gitGlobalOpts r ++ bypassSmudgeConfig }
+       -- This avoids running git write-tree when run by the smudge clean
+       -- filter, in order to work around a bug in git. That causes
+       -- git merge to fail with an internal error when git write-tree is
+       -- run by the smudge clean filter in conflicted merge situation.
+       --
+       -- When running git write-tree, avoid it running the smudge clean
+       -- filter, which would block trying to access the locked database. 
+       -- git write-tree sometimes calls it, even though it is not adding
+       -- work tree files to the index, and so the filter cannot have an 
+       -- effect on the contents of the index or on the tree that gets
+       -- written from it.
+       getindextree = ifM (Annex.getState Annex.insmudgecleanfilter)
+               ( return Nothing
+               , inRepo $ \r -> writeTreeQuiet $ r
+                       { gitGlobalOpts = gitGlobalOpts r ++ bypassSmudgeConfig }
+               )
        
 +      notneeded = isBareRepo
 +              -- Avoid doing anything when run by the 
 +              -- smudge clean filter. When that happens in a conflicted
 +              -- merge situation, running git write-tree
 +              -- here would cause git merge to fail with an internal
 +              -- error. This works around around that bug in git.
 +              <||> Annex.getState Annex.insmudgecleanfilter
 +      
        diff old new =
                -- Avoid running smudge clean filter, since we want the
                -- raw output, and it would block trying to access the